import { saveAs } from 'file-saver'

const DEFAULT_COLUMN_WIDTH = 20

// 根据 antd 的 column 生成 exceljs 的 column
export function generateHeaders(columns) {
  const cols = <any>[]
  for (const col of columns) {
    if (col.children) {
      cols.push(...generateHeaders(col.children))
    } else {
      const colObj = {
        // 显示的 name
        header: col.title,
        // 用于数据匹配的 key
        key: col.dataIndex,
        // 列宽
        width: col.width / 5 || DEFAULT_COLUMN_WIDTH,
      }
      cols.push(colObj)
    }
  }
  return cols
}

export function saveWorkbook(workbook, fileName) {
  // 导出文件
  workbook.xlsx.writeBuffer().then((data) => {
    const blob = new Blob([data], { type: '' })
    saveAs(blob, fileName)
  })
}
